银行应用 MySQL 需解决哪三个问题?
【作者】某银行 张少博、李嵩嵩
一、MySQL概况
MySQL 是自1995年开始开发的一款关系型数据库, 提供了可以遵循GPLv2协议的社区版及包含更多特性与支持的商业版。除MySQL官方版本外,MySQL 衍生出多款分支,如 MariaDB 及 Percona Server。
MySQL由连接池组件、管理服务和工具组件、SQL接口组件、解析器组件、优化器组件、缓冲组件、插件式存储引擎和物理文件组成(如图1所示)。MySQL与其它数据库最显著的不同之一是它拥有插件式的存储引擎,而InnoDB是其中最常用和最重要的存储引擎,它的高性能和高并发性是MySQL得以进入企业级应用领域的关键。
图1:MySQL体系架构
产品方面,目前除了 MySQL Community Server 社区版本和MySQL Enterprise Edition 企业版本外,还有MySQL Cluster 集群版、MySQL Cluster CGE 高级集群版。
二、功能特性
操作系统、语言和编码
MySQL使用标准SQL数据语言形式,供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。兼容多系统,支持 Unix、Linux、Mac OS、Windows、AIX、FreeBSD、HP-UX、OpenBSD、OS/2 Wrap、Solaris等多种操作系统。兼容多种编程语言。这些编程语言包括 C、C++、.NET、Python、Java、Perl、PHP、Eiffel、Ruby等。提供多语言支持,常见的编码如中文的 GB2312、BIG5,UTF8等都可以用作数据表名和数据列名。
高可用性
支持多线程,充分利用CPU资源,提升性能。优化的SQL查询算法,有效地提高查询速度。提供用于管理、检查、优化数据库操作的管理工具。高可用性,具备复制无崩溃从机,可提高可用性,复制多线程从机,可提高性能。复制全局事务标识,可支持自我修复式集群。MySQL的同步复制功能(如图2所示),保证了MySQL的高可用性。当同步复制时,主库上的事务只要至少在一个备库上提交后才能认为执行完成。MySQL Cluster版本,在所有节点上进行主从复制,当发生故障时主库从库可以进行自动切换,保证业务的持续进行。
图2:MySQL主从复制功能
三、在银行业应用现状
大型商业银行中,工商银行、中国银行、招商银行、中信银行、民生银行等均已在开放平台使用MySQL数据库,甚至涉及个人账户、对公账户、基金等核心交易系统。
但作为一款传统单机数据库,承载能力受单机的限制,其适用场景一般为数据量为500G或1T以下,更大规模的使用需要通过分库分表中间件等方式进行水平拆分。
四、银行业使用MySQL需解决的问题
银行业要使用MySQL数据库需着力解决数据安全性、运维管理、知识储备等方面的问题:
1、数据安全性
金融行业对系统稳定性和数据安全性要求较高,传统的MySQL主从复制难以满足数据强一致的需求。可以考虑通过MySQL 5.7.17版本发布的组复制功能(Group Replication)来提供高可用能力。与Oracle RAC的共享存储(Shared Disk)模式不同,组复制基于分布式一致性协议Paxos实现了一种Shared Nothing的高可用架构,保证了数据的一致性。
2、运维管理
随着MySQL实例数的增多,一定会遇到资源利用率低和运维管理困难的问题。为充分发挥后发优势、建议在引入MySQL之前就应该考虑对应解决方案,例如可以通过数据库上云、利用PaaS云平台的能力提高资源利用效率,降低运维管理难度。
3、知识储备
对开发和运维人员来说,使用MySQL有一定的学习和迁移成本。可以考虑引入业界的培训体系和支持资源,加快自有人员知识储备的速度。培训认证方面,MySQL具有由Oracle官方认证的数据库管理员OCP认证,以及对应的培训课程。国内服务厂商也有针对数据库运维管理人员和设计开发人员的课程培训,可以提升运维人员及开发人员对于MySQL的技术储备。
原题:MySQL在银行业应用可行性分析如有任何问题,可点击文末阅读原文,到社区原文下评论交流 觉得本文有用,请转发或点击“在看”,让更多同行看到
资料/文章推荐:
欢迎关注社区相关技术主题,将会不断更新优质资料、文章,您也可以前往提出疑难问题,与同行切磋交流。地址:
MySQL:http://www.talkwithtrend.com/Topic/3873
下载 twt 社区客户端 APP
长按识别二维码即可下载
或到应用商店搜索“twt”
长按二维码关注公众号
*本公众号所发布内容仅代表作者观点,不代表社区立场